As computer systems get larger and larger, as do their applications, the difficulty in monitoring all of the various applications on a system also increases. In particular, some systems may be distributed geographically (for example, in cloud computing), and multiple applications may run on multiple processors within a single computer system.
Further, these computer systems may be dynamically configured, with applications moving between processors as necessary. Additionally, the physical computer system may be dynamically configured with additional processors brought online as needed by the various applications. Monitoring such systems is extremely complex and it is difficult to configure monitoring systems such that they sufficiently monitor all of the various applications, provide a user sufficient and easily understandable alerts, and possibly to automatically repair some application problems.